package cn.getech.data.development.entity;

import cn.getech.data.development.constant.JobLogTypeEnum;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 任务节点执行历史表
 * </p>
 *
 * @author zenith
 * @since 2018-08-27
 */
@Data
@TableName("bdp_job_node_run_history")
public class JobNodeRunHistory implements Serializable  {

    private static final long serialVersionUID = 1L;

    /**
     * 编号
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * 运行编号
     */
    private Long num;
    /**
     * 运行参数
     */
    private String params;
    /**
     * 运行状态
     */
    private Integer state;
    /**
     * 运行耗时 单位ms
     */
    private Long cost;
    /**
     * 开始运行的时间
     */
    private Date time;
    /**
     * 运行的日志信息
     */
    private String log;
    /**
     * 运行完整日志
     */
    @TableField(exist = false)
    private String fullLog;

    /**
     * 任务节点信息编号
     */
    @TableField("job_node_info_id")
    private Integer jobNodeInfoId;

    /**
     * 节点任务名称
     */
    @TableField("name")
    private String name;


    /**
     * 任务id
     */
    @TableField("job_info_id")
    private Integer jobInfoId;

    /**
     * 任务节点信息编号
     */
    @TableField("node_key")
    private String nodeKey;

    /**
     * 节点类型任务类型 0 开始 1 数据接入 2 SQL计算 3 程序执行 4 数据推送 5 结束
     */
    @TableField("type_id")
    private Integer typeId;

    /**
     * 运行状态
     */
    @TableField(exist = false)
    private String  stateName;

    @TableField("oozie_job_id")
    private String oozieJobId;

    /**
     * 任务的运行状态
     */
    @TableField("oozie_status")
    private String oozieStatus;

    /**
     * 超时时间 0：未配置  时间间隔 单位分钟
     */
    @TableField("out_hours")
    private Integer outHours;

    /**
     * 是否超时时间 0：未超时  1：超时
     */
    @TableField("is_out_hours")
    private Integer isOutHours;

    /**
     * 运行耗时 单位s
     */
    @TableField(exist = false)
    private String costSecond;

    @TableField(exist = false)
    private Integer jobLogType = JobLogTypeEnum.WORKFLOWNODE.getCode();

}
